#include <stdio.h>
#include <limits.h> // 包含整型取值范围的宏
#include <float.h> // 包含浮点型取值范围的宏

int main() {
    // 查询并打印char类型占用的字节数以及其取值范围
    printf("Size of char: %lu byte, Range: %d to %d\n", sizeof(char), CHAR_MIN, CHAR_MAX);
    // 查询并打印short类型占用的字节数以及其取值范围
    printf("Size of short: %lu bytes, Range: %d to %d\n", sizeof(short), SHRT_MIN, SHRT_MAX);
    // 查询并打印int类型占用的字节数以及其取值范围
    printf("Size of int: %lu bytes, Range: %d to %d\n", sizeof(int), INT_MIN, INT_MAX);
    // 查询并打印long类型占用的字节数以及其取值范围
    printf("Size of long: %lu bytes, Range: %ld to %ld\n", sizeof(long), LONG_MIN, LONG_MAX);
    // 查询并打印long long类型占用的字节数以及其取值范围
    printf("Size of long long: %lu bytes, Range: %lld to %lld\n", sizeof(long long), LLONG_MIN, LLONG_MAX);
    // 查询并打印float类型占用的字节数以及其取值范围
    printf("Size of float: %lu bytes, Range: %E to %E\n", sizeof(float), FLT_MIN, FLT_MAX);
    // 查询并打印double类型占用的字节数以及其取值范围
    printf("Size of double: %lu bytes, Range: %E to %E\n", sizeof(double), DBL_MIN, DBL_MAX);
    // 查询并打印long double类型占用的字节数以及其取值范围
    printf("Size of long double: %lu bytes, Range: %LE to %LE\n", sizeof(long double), LDBL_MIN, LDBL_MAX);

    return 0;
}
